cairo_region_t *clip;
clip = cairo_region_create_rectangle (&(cairo_rectangle_int_t) { 0, 0, width, height });
- gtk_snapshot_init (&snapshot, NULL, clip, "Fallback<%s>", G_OBJECT_TYPE_NAME (image));
+ gtk_snapshot_init (&snapshot, NULL, FALSE, clip, "Fallback<%s>", G_OBJECT_TYPE_NAME (image));
gtk_css_image_snapshot (image, &snapshot, width, height);
node = gtk_snapshot_finish (&snapshot);
{
GskRenderNode *node = gsk_cross_fade_node_new (start_node, end_node, cross_fade->progress);
- gsk_render_node_set_name (node, "CrossFade");
+ if (snapshot->record_names)
+ gsk_render_node_set_name (node, "CrossFade");
gtk_snapshot_append_node (snapshot, node);
gsk_render_node_unref (node);
linear->stops->len);
}
- name = g_strdup_printf ("%sLinearGradient<%ustops>", linear->repeating ? "Repeating" : "", linear->stops->len);
- gsk_render_node_set_name (node, name);
- g_free (name);
+ if (snapshot->record_names)
+ {
+ name = g_strdup_printf ("%sLinearGradient<%ustops>", linear->repeating ? "Repeating" : "", linear->stops->len);
+ gsk_render_node_set_name (node, name);
+ g_free (name);
+ }
gtk_snapshot_append_node (snapshot, node);
#include "gtkcsscolorvalueprivate.h"
#include "gtkcssnumbervalueprivate.h"
#include "gtkcssrgbavalueprivate.h"
-#include "gtksnapshot.h"
+#include "gtksnapshotprivate.h"
#include "gtkstylecontextprivate.h"
#include "gtkpango.h"
_gtk_css_number_value_get (shadow->voffset, 0),
_gtk_css_number_value_get (shadow->spread, 0),
_gtk_css_number_value_get (shadow->radius, 0));
- gsk_render_node_set_name (node, "Outset Shadow");
+ if (snapshot->record_names)
+ gsk_render_node_set_name (node, "Outset Shadow");
gtk_snapshot_append_node (snapshot, node);
gsk_render_node_unref (node);
}
_gtk_css_number_value_get (shadow->voffset, 0),
_gtk_css_number_value_get (shadow->spread, 0),
_gtk_css_number_value_get (shadow->radius, 0));
- gsk_render_node_set_name (node, "Inset Shadow");
+ if (snapshot->record_names)
+ gsk_render_node_set_name (node, "Inset Shadow");
gtk_snapshot_append_node (snapshot, node);
gsk_render_node_unref (node);
}
rect.width,
rect.height);
- gtk_snapshot_init (&snapshot, NULL, NULL, "IconView DragIcon");
+ gtk_snapshot_init (&snapshot, NULL, FALSE, NULL, "IconView DragIcon");
gtk_icon_view_snapshot_item (icon_view, &snapshot, item,
icon_view->priv->item_padding,
icon_view->priv->item_padding,
bottom = gsk_container_node_new (NULL, 0);
blend = gsk_blend_node_new (bottom, top, blend_mode);
- gsk_render_node_set_name (blend, "BackgroundBlend");
+ if (snapshot->record_names)
+ gsk_render_node_set_name (blend, "BackgroundBlend");
gtk_snapshot_push (snapshot, TRUE, "BackgroundBlendGroup");
gtk_snapshot_append_node (snapshot, blend);
gsk_rounded_rect_offset (&offset_outline, off_x, off_y);
node = gsk_border_node_new (&offset_outline, border_width, colors);
- gsk_render_node_set_name (node, "Border");
+ if (snapshot->record_names)
+ gsk_render_node_set_name (node, "Border");
gtk_snapshot_append_node (snapshot, node);
gsk_render_node_unref (node);
}
else
{
node = gsk_container_node_new (nodes, n_nodes);
- gsk_render_node_set_name (node, name);
+ if (name)
+ gsk_render_node_set_name (node, name);
}
return node;
void
gtk_snapshot_init (GtkSnapshot *snapshot,
GskRenderer *renderer,
+ gboolean record_names,
const cairo_region_t *clip,
const char *name,
...)
char *str;
snapshot->state = NULL;
+ snapshot->record_names = record_names;
snapshot->renderer = renderer;
- if (name)
+ if (name && record_names)
{
va_list args;
{
char *str;
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
return NULL;
transform_node = gsk_transform_node_new (node, transform);
- gsk_render_node_set_name (transform_node, name);
+ if (name)
+ gsk_render_node_set_name (transform_node, name);
gsk_render_node_unref (node);
g_slice_free (graphene_matrix_t, transform);
char *str;
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
return NULL;
opacity_node = gsk_opacity_node_new (node, *(double *) opacity);
- gsk_render_node_set_name (opacity_node, name);
+ if (name)
+ gsk_render_node_set_name (opacity_node, name);
gsk_render_node_unref (node);
g_free (opacity);
double *real_opacity;
char *str;
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
color_matrix_node = gsk_color_matrix_node_new (node,
&color_matrix->matrix,
&color_matrix->offset);
- gsk_render_node_set_name (color_matrix_node, name);
+ if (name)
+ gsk_render_node_set_name (color_matrix_node, name);
gsk_render_node_unref (node);
g_free (color_matrix);
ColorMatrix *color_matrix_data;
char *str;
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
repeat_node = gsk_repeat_node_new (&bounds[0],
node,
bounds[1].size.width > 0 ? &bounds[1] : NULL);
- gsk_render_node_set_name (repeat_node, name);
+ if (name)
+ gsk_render_node_set_name (repeat_node, name);
gsk_render_node_unref (node);
g_free (data);
graphene_rect_t *data;
char *str;
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
return NULL;
clip_node = gsk_clip_node_new (node, bounds);
- gsk_render_node_set_name (clip_node, name);
+ if (name)
+ gsk_render_node_set_name (clip_node, name);
gsk_render_node_unref (node);
g_slice_free (graphene_rect_t, bounds);
real_bounds = g_slice_new (graphene_rect_t);
graphene_rect_offset_r (bounds, snapshot->state->translate_x, snapshot->state->translate_y, real_bounds);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
return NULL;
clip_node = gsk_rounded_clip_node_new (node, bounds);
- gsk_render_node_set_name (clip_node, name);
+ if (name)
+ gsk_render_node_set_name (clip_node, name);
gsk_render_node_unref (node);
g_slice_free (GskRoundedRect, bounds);
gsk_rounded_rect_init_copy (real_bounds, bounds);
gsk_rounded_rect_offset (real_bounds, snapshot->state->translate_x, snapshot->state->translate_y);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
return NULL;
shadow_node = gsk_shadow_node_new (node, shadow->shadows, shadow->n_shadows);
- gsk_render_node_set_name (shadow_node, name);
+ if (name)
+ gsk_render_node_set_name (shadow_node, name);
gsk_render_node_unref (node);
g_free (shadow);
real_shadow->n_shadows = n_shadows;
memcpy (real_shadow->shadows, shadow, sizeof (GskShadow) * n_shadows);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
graphene_rect_offset_r (bounds, snapshot->state->translate_x, snapshot->state->translate_y, &real_bounds);
node = gsk_cairo_node_new (&real_bounds);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
char *str;
graphene_rect_offset_r (bounds, snapshot->state->translate_x, snapshot->state->translate_y, &real_bounds);
node = gsk_texture_node_new (texture, &real_bounds);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
char *str;
graphene_rect_offset_r (bounds, snapshot->state->translate_x, snapshot->state->translate_y, &real_bounds);
node = gsk_color_node_new (color, &real_bounds);
- if (name)
+ if (name && snapshot->record_names)
{
va_list args;
char *str;
struct _GtkSnapshot {
GtkSnapshotState *state;
-
+ gboolean record_names;
GskRenderer *renderer;
};
void gtk_snapshot_init (GtkSnapshot *state,
GskRenderer *renderer,
+ gboolean record_names,
const cairo_region_t *clip,
const char *name,
- ...) G_GNUC_PRINTF (4, 5);
+ ...) G_GNUC_PRINTF (5, 6);
GskRenderNode * gtk_snapshot_finish (GtkSnapshot *state);
GskRenderer * gtk_snapshot_get_renderer (const GtkSnapshot *snapshot);
#include "gtkcontainerprivate.h"
#include "gtkprogresstrackerprivate.h"
#include "gtksettingsprivate.h"
+#include "gtksnapshotprivate.h"
#include "gtkwidgetprivate.h"
#include "a11y/gtkstackaccessible.h"
#include "a11y/gtkstackaccessibleprivate.h"
node = gsk_opacity_node_new (end_node, 1.0 - progress);
}
- name = g_strdup_printf ("CrossFade<%g>", progress);
- gsk_render_node_set_name (node, name);
- g_free (name);
+ if (snapshot->record_names)
+ {
+ name = g_strdup_printf ("CrossFade<%g>", progress);
+ gsk_render_node_set_name (node, name);
+ g_free (name);
+ }
gtk_snapshot_append_node (snapshot, node);
bin_window_width + 2,
background_area.height + 2);
- gtk_snapshot_init (&snapshot, NULL, NULL, "TreeView DragIcon");
+ gtk_snapshot_init (&snapshot, NULL, FALSE, NULL, "TreeView DragIcon");
gtk_snapshot_render_background (&snapshot, context,
0, 0,
widget->priv->clip.y - widget->priv->allocation.y,
widget->priv->clip.width,
widget->priv->clip.height});
- gtk_snapshot_init (&snapshot, renderer, clip, "Fallback<%s>", G_OBJECT_TYPE_NAME (widget));
+ gtk_snapshot_init (&snapshot, renderer, FALSE, clip, "Fallback<%s>", G_OBJECT_TYPE_NAME (widget));
gtk_widget_snapshot (widget, &snapshot);
node = gtk_snapshot_finish (&snapshot);
if (node != NULL)
gtk_snapshot_init (&snapshot,
renderer,
+ gtk_inspector_is_recording (widget),
clip,
"Render<%s>", G_OBJECT_TYPE_NAME (widget));
cairo_region_destroy (clip);
node);
}
+gboolean
+gtk_inspector_is_recording (GtkWidget *widget)
+{
+ GtkInspectorWindow *iw;
+
+ iw = gtk_inspector_window_get_for_display (gtk_widget_get_display (widget));
+ if (iw == NULL)
+ return FALSE;
+
+ /* sanity check for single-display GDK backends */
+ if (GTK_WIDGET (iw) == widget)
+ return FALSE;
+
+ return gtk_inspector_recorder_is_recording (GTK_INSPECTOR_RECORDER (iw->widget_recorder));
+}
+
// vim: set et sw=2 ts=2:
void gtk_inspector_window_rescan (GtkWidget *iw);
+gboolean gtk_inspector_is_recording (GtkWidget *widget);
void gtk_inspector_record_render (GtkWidget *widget,
GskRenderer *renderer,
GdkWindow *window,